Springboot整合Hikari数据库连接池,密码加密

您所在的位置:网站首页 spring boot 连接池 加密 Springboot整合Hikari数据库连接池,密码加密

Springboot整合Hikari数据库连接池,密码加密

2024-07-14 02:36:01| 来源: 网络整理| 查看: 265

1.application.yml配置

1 spring: 2 datasource: 3 jdbcUrl: jdbc:mysql://127.0.0.1:3306/jby?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false 4 username: root 5 password: 'f687101570bae7ce4d313c2b4440f4ae' 6 #自动提交 7 auto-commit: true 8 #最小连接 9 minimum-idle: 100 10 #最大连接 11 maximum-pool-size: 200 12 #最大空闲时间 13 idle-timeout: 60000 14 #连接池名 15 pool-name: DatebookHikariCP 16 #最大生命周期 17 max-lifetime: 900000 18 #连接超时时间 19 connection-timeout: 15000 20 #心跳检测 21 connection-test-query: SELECT 'x' FROM DUAL

2. 构建UmspscDataSource类,继承HikariDataSource类

1 @Slf4j 2 public class UmspscDataSource extends HikariDataSource { 3 private String passwordDis; 4 /** 5 * 密匙 6 */ 7 private final static String PKEY ="1234565437892132"; 8 @Override 9 public String getPassword(){ 10 11 if(StringUtils.isNotBlank(passwordDis)){return passwordDis;} 12 String encPassword = super.getPassword(); 13 if(null==encPassword){ 14 return null; 15 } 16 log.info("数据库密码加解密,{"+encPassword+"}"); 17 try{ 18 // 密文解密,解密方法可以修改 19 String key = HexUtil.encodeHexStr(PKEY); 20 SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, key.getBytes()); 21 passwordDis = aes.decryptStr(encPassword, CharsetUtil.CHARSET_UTF_8); 22 return passwordDis; 23 }catch (Exception e){ 24 log.error("数据库密码解密出错,{"+encPassword+"}"); 25 log.error(LogUtil.e(e)); 26 throw new AppException("数据库密码解密失败!", e); 27 } 28 } 29 }

3.初始化DataSource类

1 @Component 2 public class CommonBeanFactory { 3 4 @Bean(name = "dataSource", autowire = Autowire.NO) 5 @Primary 6 @ConfigurationProperties(ignoreUnknownFields = false,prefix="spring.datasource") 7 public HikariDataSource dataSource() { 8 HikariDataSource druidDataSource = new UmspscDataSource(); 9 return druidDataSource; 10 } 11 }

*******************************

构建密文

1 @Slf4j 2 public class Main { 3 4 public static void main(String[] args) { 5 //明文 6 String content = "123456"; 7 //密匙 8 String pkey = "1234565437892132"; 9 log.info("密匙:" + pkey); 10 String key = HexUtil.encodeHexStr(pkey); 11 //构建 12 SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, key.getBytes()); 13 14 //加密为16进制表示 15 String encryptHex = aes.encryptHex(content); 16 log.info("密文:" + encryptHex); 17 //解密为字符串 18 String decryptStr = aes.decryptStr(encryptHex, CharsetUtil.CHARSET_UTF_8); 19 log.info("明文:" + decryptStr); 20 } 21 }

 



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭